package test.mail;

import java.io.FileOutputStream ;
import java.io.IOException ;
import java.io.OutputStream ;
import java.io.UnsupportedEncodingException ;
import java.util.Date ;
import java.util.Properties ;

import javax.mail.Authenticator ;
import javax.mail.Message ;
import javax.mail.Message.RecipientType ;
import javax.mail.MessagingException ;
import javax.mail.Session ;
import javax.mail.internet.InternetAddress ;
import javax.mail.internet.MimeMessage ;

/**
 * 发送邮箱工具
 * @author 80002165 @date 2017年6月28日 上午8:15:05
 */
public class SendMailUtil {
    /**
     * 发送邮件
     * 1、创建连接对象，连接邮箱服务器
     * 2、创建邮件对象
     * 3、发送邮件
     * @author 80002165 @date 2017年6月28日 上午8:18:44
     * @param to
     * @throws MessagingException 
     * @throws IOException 
     */
    public static void sendMail(String to) throws MessagingException, IOException{
        //创建参数配置
        Properties props = new Properties() ;
        props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议（JavaMail规范要求）
        props.setProperty("mail.smtp.host", "smtp.163.com");   // 发件人的邮箱的 SMTP 服务器地址
        props.setProperty("mail.smtp.auth", "true");
        
        Session mailSession= Session.getDefaultInstance(props, new Authenticator() {
            
        }) ;
        
        MimeMessage message = new MimeMessage(mailSession) ;
        
        //设置邮件发送人
        message.setFrom(new InternetAddress("", ""));
        
        //设置邮件接收人
        //邮件接收人
        message.setRecipient(RecipientType.TO, new InternetAddress(""));
        //邮件抄送人
        message.setRecipient(RecipientType.CC, new InternetAddress(""));
        //邮件密送人
        message.setRecipient(RecipientType.BCC, new InternetAddress(""));
        
        //设置邮件内容
        //设置邮件主题
        message.setSubject("主题", "UTF-8");
        //设置邮件正文(正文为html)
        message.setContent("邮件正文","text/html;charset=UTF-8");
        //邮件发送时间
        message.setSentDate(new Date());
        
        //可将邮件保存到本地
        OutputStream out = new FileOutputStream("MyEmail.eml") ;
        message.writeTo(out);
        //发送邮件
        mailSession.getTransport().send(message);
    }
}
